package entity

import dom "a-common/domain"

// SysNotice 系统通知表
type SysNotice struct {
	NoticeId       int64  `xorm:"pk autoincr notnull"`     // 公告ID
	Title          string `xorm:"varchar(50) notnull"`     // 公告标题
	Type           string `xorm:"varchar(1) notnull"`      // 公告类型（1通知 2公告）
	Content        string `xorm:"longblob"`                // 公告内容
	Status         string `xorm:"varchar(1) default('1')"` // 公告状态（1正常 0关闭）
	Belong         string `xorm:"varchar(1) default('1')"` // 属于（1系统 2用户）
	Userid         int64  // 当属于用户信息时，关联用户ID
	Read           string `xorm:"varchar(1) default('0')"` // 当属于用户信息时，关联用户ID是否已读(0未读 1已读)
	dom.BaseStruct `xorm:"extends"`
}

// SysNoticeVo 映射
type SysNoticeVo struct {
	NoticeId int64  `json:"noticeId,omitempty" xorm:"pk"`
	Title    string `json:"title,omitempty"`
	Type     string `json:"type,omitempty"`
	Content  string `json:"content,omitempty"`
	Status   string `json:"status,omitempty"`
	Belong   string `json:"belong,omitempty"`
	Userid   int64  `json:"userId,omitempty"`
	Read     string `json:"read,omitempty"`
}

// SysNoticePageVo 页面
type SysNoticePageVo struct {
	SysNoticeVo  `xorm:"extends"`
	dom.BaseJson `xorm:"extends"`
}

// SysNoticeDto 传输
type SysNoticeDto struct {
	SysNoticePageVo
	dom.PageDto
}

func (m *SysNoticeDto) Validator() error {
	if m.PageNum < 1 {
		m.PageNum = 1
	}
	if m.PageSize < 1 {
		m.PageSize = 10
	}
	return nil
}
